package cn.design;

import cn.design.realize.AlibabaConcreteFactory;
import cn.design.realize.FarmAbstractFactory;
import cn.design.realize.TenXunConcreteFactory;

/**
 * @author dlq
 * @description
 * @date 2020/9/11 9:28
 * @since 1.0
 */
public class AbstractFactoryDemo {
    public static void main(String[] args) {
        //1. 设定农场中，只有：植物类和动物类 的产品
        //2. 植物类有: 水果 和 蔬菜 -->
        //3. 动物类有: 鸡 和 牛
        //4. 这里存在两个农场,生产不同的产品
        //     阿里农场只有 水果 和 鸡肉
        //     腾讯农产只生产 蔬菜 和 牛肉
        //     可能还有其他农场： 比如 华为农场、京东农场

        //我不需要知道我从那个农场获取东西，我只知道我要 水果 和  牛肉
        //水果
        FarmAbstractFactory fruitAbstractFactory = new AlibabaConcreteFactory();
        fruitAbstractFactory.plantCreate().producePlantProduce();

        // 牛肉
        FarmAbstractFactory cattleAbstractFactory = new TenXunConcreteFactory();
        cattleAbstractFactory.animalCreate().produceMeat();
    }
}
